#include<stdio.h>

int left[15]={0};
int right[15]={0};
int cal[8]={0};
int Q[8];
int top=-1;
int sum=0;
void PrintQueen(void)
{
	int i,j;
	for(i=0;i<8;printf("\n"),i++)
	for(j=0;j<8;j++)
	{
		if(Q[i]==j) printf("Q ");
		else printf("x ");
	}
}


void Queen(int i)
{
	int j;
	for(j=0;j<8;j++)
	{
		if(cal[j]==0&&left[i+j]==0&&right[i+7-j]==0)
		{
			Q[++top]=j;
			cal[j]=left[i+j]=right[i+7-j]=1;
			if(i<7) Queen(i+1);
			else 
			{
				PrintQueen();
				printf("%d\n",++sum);
			}
			cal[j]=left[i+j]=right[i+7-j]=0;
			top--;
		}
	}
	return ;
}


int main(void)
{
	Queen(0);
	return 0;
} 
